package com.crm.system.service.trainingManager;

import com.alibaba.fastjson.JSONObject;
import com.crm.common.model.DhPageInfo;
import com.crm.model.entity.internalTrainingManager.NxContact;
import com.crm.model.entity.trainingManager.TrainingContact;
import com.crm.model.qo.trainingManager.TrainContractAddQO;
import com.crm.model.qo.trainingManager.TrainingContactListQO;
import com.crm.model.vo.trainingManager.TrainingContractDetailVO;
import com.crm.model.vo.trainingManager.TrainingContractVO;

import java.util.List;

/**
 * @author luojie
 * @date 2021/9/13 16:03
 */
public interface TrainingContractService {

    /***
     * @Description:添加内训合同
     * @Param: trainContractAddQO 内训合同对象
     * @Author: luojie
     * @Date: 2021/9/13 16:06
     */
    Boolean addTrainingContract(TrainContractAddQO trainContractAddQO);

    /***
     * @Description:查询内训客户列表
     * @Param:
     * @Author: luojie
     * @Date: 2021/9/14 14:06
     */
    List<JSONObject> getTrainingCustomerList();

    /***
     * @Description:根据客户id查询内训联系人列表
     * @Param:customerId 客户id
     * @Author: luojie
     * @Date: 2021/9/14 15:21
     */
    List<JSONObject> getTrainingCustomerContactList(String customerId);

    /**
     * (用户模块)内训管理-内训合同列表
     * @param trainingContactListQO --查询条件
     * @param pageIndex/pageSize    --页码/分页大小
     * @param sortName/sortOrder    --排序字段/排序规则(ASC/DESC)
     * @return
     */
    DhPageInfo<TrainingContractVO> selectTrainingContractVOList(TrainingContactListQO trainingContactListQO, Integer pageIndex, Integer pageSize, String sortName, String sortOrder);

    /**
     * (用户模块)内训管理-》内训合同列表-》合同详情-》合同信息
     * @param trainingContractId --内训合同ID
     * @author yincuimei
     * @return
     */
    TrainingContractDetailVO selectTrainingContractDetailVO(String trainingContractId);

    /**
     * 内训线索池列表(管理)/内训线索(用户)内训详情--合同订单列表
     * @param trainingId  --内训ID
     * @return
     */
    DhPageInfo<TrainingContractVO>  selectTrainingContractListByTrainingId(String trainingId, Integer pageIndex, Integer pageSize, String sortName, String sortOrder);

    /**
     * 通过客户id查询内训联系人
     * @author baijian
     * @return
     */
    DhPageInfo<NxContact> selectContactByCustomerId(String customerId, Integer pageIndex, Integer pageSize, String sortName, String sortOrder);
}
